#!/usr/bin/env node

const fs = require('fs'),
      arr = [],
      ml = process.argv[2],
      file = process.argv[3];

//显示文件信息命令
if(ml == '-list'){
  let dir1 = fs.readdirSync('./sysFile');
  let j = 0;
  for(let i = 0; i < dir1.length; ++i){
    if(fs.statSync(`./sysFile/${dir1[i]}`).isFile()){    
      arr[j] = {
        fileName:`${dir1[i]}`,
        fileSize:fs.statSync(`./sysFile/${dir1[i]}`).size
      };
      if(j > 0){
        for(let m = j; m > 0; m--){
          if(arr[m].fileSize < arr[m-1].fileSize){
            let temp = arr[m];
            arr[m] = arr[m-1];
            arr[m-1] = temp;
          }
        }
      }
      j++;
    }
  }

  var json = JSON.stringify(arr);
  console.log(json);
}

//打印文件内容命令
if(ml == '-show'){
  try{
    console.log(fs.readFileSync(`./sysFile/${file}`).toString('utf8'));
  }catch(e){
    console.log('文件不存在');
  }
}


//删除函数
let src = `./sysFile/${file}`;
function del(s){
  if(fs.statSync(s).isFile()){
    fs.unlinkSync(`./sysFile/${file}`);
    console.log(`文件：${file} 删除成功`);
  }else{
    let content = fs.readdirSync(s);
    //abc   abc.js
    content.forEach((item) => {
      if(fs.statSync(`${s}/${item}`).isFile()){
        fs.unlinkSync(`${s}/${item}`);
        console.log(`文件：${item} 删除成功`);
      }else{
        del(`${s}/${item}`);
      }
    });
    fs.rmdirSync(`${s}`);
    let la = s.split('/');
    console.log(`文件夹：${la[la.length-1]} 删除成功`);
  }
}

//删除命令
if(ml == '-del'){
  del(src);
}
